package com.leetcode.array;

/**
 * 归并排序的归并部分，本题中nums1的size肯定是比nums2的size大
 * ==> 过两天再做。我真的是日了狗了。这个题我居然通不过。。这么菜嘛
 */
public class Leetcode88 {

    public void merge(int[] nums1, int m, int[] nums2, int n) {
        if (n == 0) {
            return;
        }
        int i = 0;
        int j = 0;
        while (j < n) {
            if (nums1[i] > nums2[j]) {
                moveArr(nums1, i);
                nums1[i] = nums2[j];
                j++;
            }
            i ++;
        }
        if (i == m) {
            for (int k = j ; k < n ; k ++) {
                nums1[k + m] = nums2[k];
            }
        }
    }

    private void moveArr(int[] arr, int i) {
        for (int j = arr.length - 1 ; j > i ; j--) {
            arr[j] = arr[j - 1];
        }
    }

    public static void main(String[] args) {
        int[] nums1 = {4, 0, 0, 0, 0, 0, 0};
        int[] nums2 = {1, 2, 3, 4, 5};
        new Leetcode88().merge(nums1, 1, nums2, 5);
        for (int i = 0 ; i < nums1.length ; i ++) {
            System.out.print(nums1[i] + " ");
        }
    }
}
